package com.bgs.eat.userProtal.service;

import com.bgs.eat.config.CommonResult;
import com.bgs.eat.page.PageRequest;
import com.bgs.eat.page.PageResult;

import com.bgs.eat.userProtal.entity.UserProtalEntity;

import org.springframework.web.multipart.MultipartFile;

import java.util.Map;


public interface UserProtalService {

    /**
    * @Author hbx
    * @Description 新增用户门户信息 （用户登录）
    * @Date 2022/10/11 14:55
    * @param userName
    * @param password
    */
    int addUserProtal(String userName, String password);

    /**
     * @Author hbx
     * @Description 根据审批id查询用户信息 (后端审批管理)
     * @Date 2022/10/14 11:22
     * @param pageRequest
     * @param userName
     */
    PageResult getUserProtalByAudit(PageRequest pageRequest, String userName);

    /**
    * @Author hbx
    * @Description 修改用户账号名称信息
    * @Date 2022/10/17 14:06
    * @param id
    * @param userName
    */
    Integer updateAccount(Integer id, String userName);

    /**
    * @Author hbx
    * @Description 修改用户昵称信息
    * @Date 2022/10/17 14:40
    * @param id
    * @param nickName
    */
    Integer updateNickName(Integer id, String nickName);

    /**
    * @Author hbx
    * @Description 修改用户自我介绍
    * @Date 2022/10/17 14:50
    * @param id
    * @param introduction
    */
    Integer updateIntroduction(Integer id, String introduction);

    /**
    * @Author cjl
    * @Description 审核骑手成功 发送邮箱提示
    * @Date  10:15
    * @Return int
    * @param userProtalEntity
    */
    int updateHorsemanauDitIdSucceed(UserProtalEntity userProtalEntity);

    /**
    * @Author cjl
    * @Description 审核骑手失败 发送邮箱提示
    * @Date  10:15
    * @Return int
    * @param map
    */
    int updateHorsemanauDitIdFail(Map<String,String> map);

    /**
    * @Author cjl
    * @Description 审核商家成功 发送邮箱提示
    * @Date  10:16
    * @Return int
    * @param userProtalEntity
    */
    int updateMerchantDitIdSucceed(UserProtalEntity userProtalEntity);

    /**
    * @Author cjl
    * @Description 审核商家失败 发送邮箱提示
    * @Date  10:16
    * @Return int
    * @param map
    */
    int updateMerchantDitIdFail(Map<String,String> map);

    /**
    * @Author cjl
    * @Description 根据审批id查询用户信息 (后端审批管理) 商家审批管理
    * @Date  10:23
    * @Return com.bgs.eat.page.PageResult
    * @param pageRequest
    * @param userName
    */
    PageResult getUserProtalByAuditMerchant(PageRequest pageRequest, String userName);

    /**
    * @Author cjl
    * @Description 删除审核的用户
    * @Date  11:25
    * @Return java.lang.Integer
    * @param id
    */
    Integer deleteUserProtalById(Integer id);

    /**
    * @Author hbx
    * @Description 修改用户个人头像 （前端）
    * @Date 2022/10/18 8:30
    * @param file
    */
    CommonResult applyUploadImage(MultipartFile file);

    /**
    * @Author hbx
    * @Description 修改用户头像 （前端）
    * @Date 2022/10/18 8:46
    * @param id
    * @param avatarId
    */
    Integer updateAvatarId(Integer id, Integer avatarId);

    /**
    * @Author hbx
    * @Description 根据id查询用户信息
    * @Date 2022/10/18 15:10
    * @param id
    */
    CommonResult getAllUserById(Integer id);

    /**
    * @Author hbx
    * @Description 根据用户id修改手机号
    * @Date 2022/10/18 20:37
    * @param id
    * @param phone
    */
    Integer updatePhoneById(Integer id, String phone);

    /**
    * @Author cjl
    * @Description 全查 前端用户（模糊查用户昵称）
    * @Date  10:52
    * @Return com.bgs.eat.page.PageResult
    * @param pageRequest
    * @param userName
    */
    PageResult getUserProtalByRoleOne(PageRequest pageRequest, String userName);

    /**
    * @Author cjl
    * @Description 全查 前端商家（模糊查用户昵称）
    * @Date  14:17
    * @Return com.bgs.eat.page.PageResult
    * @param pageRequest
    * @param userName
    */
    PageResult getUserProtalByRoleTwo(PageRequest pageRequest, String userName);

    /**
    * @Author cjl
    * @Description 全查 前端骑手（模糊查用户昵称）
    * @Date  14:17
    * @Return com.bgs.eat.page.PageResult
    * @param pageRequest
    * @param userName
    */
    PageResult getUserProtalByRoleThree(PageRequest pageRequest, String userName,Integer countyId, Integer roleId);

    /**
    * @Author cjl
    * @Description 修改 前端（用户，商家，骑手）
    * @Date  14:17
    * @Return int
    * @param userProtalEntity
    */
    int updateUserProtalEntity(UserProtalEntity userProtalEntity);

}
